package com.cyw.common.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * @Author:cyw
 * @CreateTime: 2021/3/11 10:29
 **/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AccessRateLimit {
    /**
     * 每单位时间的访问次数上限
     */
    int value();

    /**
     * 被访问对象的key，默认为类名+方法名
     */
    String key() default "";

    /**
     * 时间单位的类型
     */
    TimeUnit type() default TimeUnit.MINUTES;

    /**
     * 频率过高提示
     */
    String errorMessage() default "访问次数过多";
}